﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Helena.Models;

namespace Helena.Areas.Reportes.Models
{
    public class LogicaCierreCaja : InterfazLogicaCierreCaja
    {
        DBContext CierreCaja_contexto = new DBContext();
        DBGenericQueriesUtil<CierreCaja> Tabla;

        public DBContext context_publico { get { return CierreCaja_contexto; } }

        public LogicaCierreCaja()
        {
            Tabla = new DBGenericQueriesUtil<CierreCaja>(CierreCaja_contexto, CierreCaja_contexto.t_CierreCajas);
        }

        public void GuardarCierreCaja(CierreCaja c,DateTime fecha)
        {
            CierreCaja ant = Tabla.retornarTodos().Where(x => x.fecha.DayOfYear == fecha.DayOfYear).FirstOrDefault();
            if (ant == null)
            {
                Tabla.agregarElemento(c);
            }
            else
            {
                c.ID = ant.ID;
                Tabla.modificarElemento(c, ant.ID);
            }
        }

        public CierreCaja ObtenerCierraCaja(DateTime Fecha)
        {
            CierreCaja cierre = Tabla.retornarTodos().Where(c=>c.fecha.DayOfYear==Fecha.DayOfYear).SingleOrDefault();
            try
            {
                return Tabla.retornarUnSoloElemento(cierre.ID);
            }
            catch
            {
                return new CierreCaja();
            }
        }       
        
    }
}